package io.clayton.miep.core;

import java.util.List;
import java.util.Map;

public interface BaseDAO<VO extends BaseVO> {

	/**
	 * 插入一条对象
	 * @param vo
	 * @return
	 */
	public int insert(VO vo);

	/**
	 * 更新一条对象
	 * @param vo
	 * @return
	 */
	public int update(VO vo);

	/**
	 * 删除一条对象
	 * @param id
	 * @return
	 */
	public int delete(String id);

	/**
	 * 批量删除多条对象，该方法有可能没实现
	 * @param id
	 * @return
	 */
	public int delete(String[] id);

	/**
	 * 根据主键获取一条对象
	 * @param id
	 * @return
	 */
	public VO get(String id);
	
	/**
	 * 根据查询条件获取一条对象，该方法有可能没实现
	 * @param map
	 * @return
	 */
	public VO queryOne(Map<Object, Object> map);
	
	/**
	 * 获取所有的对象
	 * @return
	 */
	public List<VO> queryall();
	
	/**
	 * 根据查询条件获取多个对象，该方法有可能没实现
	 * @param map
	 * @return
	 */
	public List<VO> query(Map<Object, Object> map);
	
	/**
	 * 根据查询条件获取多个对象，并按照分页显示，该方法有可能没实现
	 * @param map
	 * @return
	 */
	public List<VO> queryWithPaging(Map<Object, Object> map);

}
